iT邦幫忙

2024 iThome 鐵人賽

DAY 4
0
Software Development

測試工程師的上線時間:從分析到實戰的刻意練習系列 第 4

Day 04:讓我們來解救艾蜜莉的訂房災難!

  • 分享至 

  • xImage
  •  

前言

嘿,大家好!今天我們來聊聊如何設計一個飯店預訂系統的測試案例。這是一個我經常會用來測試分析能力和設計策略的練習,因為這樣的系統不僅場景複雜,而且能碰到很多實際情況,像是訂房變更、付款失敗、甚至是房間損壞等問題。

我們會用一種叫 Soap Opera Testing 的方法,這是一種有趣且實用的測試技巧,來自 Hans Buwalda。他的思路就是將測試場景變得像「肥皂劇」一樣,透過使用者的角度去描述一連串可能發生的情境,找到系統的潛在問題。

肥皂劇劇情測試 (Soap Opera Testing) 簡介

Soap Opera Testing 就像是一部充滿波折的肥皂劇劇情,不同的使用者會經歷各種突發狀況,這種方法最適合複雜且變動多的系統測試。具體來說,我們會圍繞某個使用者來設定場景,看看隨著訂房流程的變化,系統是否能穩健運作,並且能夠應對所有的變動。

這裡有個影片可以更詳細了解這個測試方法:Soap Opera Testing

挑戰目標

我們今天的挑戰是:利用 Soap Opera Testing 來設計飯店預訂系統的測試案例,涵蓋從訂房、取消到重新訂房及付款問題等場景,目標是覆蓋大部分使用者可能遇到的情境。

系統需求

  • 用戶可以選擇飯店、入住日期、退房日期、房型和入住人數來進行預訂。
  • 預訂完成後,系統會生成預訂確認郵件,包含詳細訂房信息與付款資訊。
  • 支持多種付款方式(信用卡、PayPal 等)。

劇情設計

讓我們設計一下使用者 Emily 的預訂過程,她的行程變動非常多,整個預訂系統都會被她搞得一團亂!她的故事如下:

  1. 第一次訂房:Emily 先訂了一間飯店,計劃 2024 年 10 月 1 日入住,10 月 5 日退房。
  2. 更改入住日期:因為工作調整,她將入住日期提前至 9 月 30 日。
  3. 取消部分日期:後來,她決定取消 10 月 1 日至 10 月 2 日的住宿,改為只住 9 月 30 日至 10 月 1 日。
  4. 再次訂房:突然她又改變主意,重新訂回 10 月 1 日至 10 月 5 日的房間。
  5. 付款失敗:Emily 在嘗試付款時因銀行問題失敗,但重新付款後成功。
  6. 重複訂房:她不小心重複訂了兩間房間,後來取消了其中一間。
  7. 延長住宿:住宿期間,她想延長一天,但飯店房間已滿。
  8. 房間損壞:她不小心損壞了房間的設施,系統需要處理賠償問題。
  9. 結束住宿:最終,系統應該能正確計算所有費用,包括取消、重新訂房及損壞賠償的部分,並生成最終帳單。

測試範圍

針對 Emily 的故事,我們需要驗證以下幾個重要的功能點:

  1. 預訂流程是否順利完成,並寄出確認郵件和付款記錄。
  2. 修改預訂日期,系統是否正確更新房間價格與確認信息。
  3. 系統能否處理部分日期取消,並進行部分退款。
  4. 處理重新訂房,並生成新的訂房確認。
  5. 系統是否能正確計算所有費用,並發送最終帳單。

測試案例

測試案例名稱 初始條件 測試步驟 預期結果 重要檢查點
案例 1:成功預訂房間 無預訂 1. 選擇 10 月 1 日至 10 月 5 日2. 提交預訂並付款 成功生成預訂,系統寄出確認郵件和付款記錄 1. 系統生成正確的預訂號碼2. 確認郵件準確發送
案例 2:修改入住日期 已預訂 10 月 1 日至 10 月 5 日 1. 將入住日期改為 9 月 30 日2. 更新預訂並付款 預訂更新成功,確認信息和房價相應修改 1. 日期與價格更新正確2. 發送新的確認郵件
案例 3:部分取消預訂 已預訂 9 月 30 日至 10 月 5 日 1. 取消 10 月 1 日至 10 月 2 日的預訂2. 系統部分退款 成功取消,退款處理正確,更新確認郵件發送 1. 取消部分日期準確2. 退款完善3. 確認郵件準確發送
案例 4:重新訂房 已取消部分日期的預訂 1. 重新訂 10 月 1 日至 10 月 5 日2. 提交預訂並付款 成功生成新預訂,系統發送確認郵件 1. 生成新的預訂號碼2. 郵件發送準確
案例 5:付款失敗後重試 正在付款 1. 嘗試付款失敗2. 解決問題後重新付款 成功完成付款,系統發送付款確認郵件 1. 錯誤提示是否正確2. 付款成功後郵件是否正確發送
案例 6:重複訂房取消 已重複訂房 1. 發現重複訂兩間房2. 取消其中一間房 成功取消重複訂房,退款處理完善 1. 確認多餘的房間被取消2. 部分退款處理準確
案例 7:延長住宿申請 已入住 1. 提出延長住宿申請2. 系統檢查房間是否可用 房間已被預訂,系統正確提示無法延長 1. 系統是否正確提示房間無法延長
案例 8:損壞賠償處理 已入住 1. 房間設施損壞2. 系統生成賠償費用 系統生成賠償費用,並記錄到最終帳單 1. 損壞賠償計算正確2. 記錄賠償費用到帳單
案例 9:最終帳單生成 退房 1. 系統生成最終帳單2. 檢查取消、訂房、損壞賠償的費用是否正確計算 成功生成最終帳單,系統寄出帳單郵件 1. 費用計算正確2. 帳單準確寄送

測試案例分析

  • 功能覆蓋:測試案例基本涵蓋了預訂系統中的所有主要功能,從訂房到取消、付款失敗和損壞賠償等情境。
  • 邊界情況處理:案例中處理了付款失敗重試、重複訂房和延長住宿這些邊界情況,檢查系統能否正確應對各種突發狀況。
  • 異常處理:設計了如損壞設施和部分退款等異常情況的處理,這些案例能幫助確保系統面對複雜情境時的穩健性。

結論

透過 Soap Opera Testing 的測試方法,我們可以從使用者的角度,快速發現系統在複雜情境下的潛在問題。這種方法非常適合針對具有多樣化使用者行為和複雜流程的系統進行測試。

所以,如果你的系統經常會遇到各種不同的使用情境,不妨試試用這種「肥皂劇」式的測試法,不僅有趣,也能有效覆蓋大部分邊界和異常情況!


上一篇
Day 03:看似簡單的縮網址,其實暗藏玄機!
下一篇
Day 05:科基還是柴犬?10 分鐘測試計畫大挑戰!
系列文
測試工程師的上線時間:從分析到實戰的刻意練習30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言